#!/bin/bash

dt=`date -d '1 days ago' '+%Y-%m-%d'`

# 定义日志文件路径
# 全量处理的日志
FULL_ADD_LOG="/root/aaa/program_2_hivesql/full_add.log"
# 增量处理的日志
INC_ADD_LOG="/root/aaa/program_2_hivesql/inc_add.log"

echo "======= 开始处理数据啦！处理的日期是: $dt ======="

# 先把开始时间写到日志里
echo "$(date '+%Y-%m-%d %H:%M:%S') - 开始从ODS往DWD导全量数据" >> $FULL_ADD_LOG
# 执行Hive命令（-f 后面跟的是写好的SQL脚本路径，不用改路径）
nohup hive -hivevar etl_dt="$dt" -cdcf /root/aaa/program_2_hivesql/ods_to_dwd_full_add.txt >> $FULL_ADD_LOG 2>&1
test1=$?

# 把开始时间写到日志里
echo "$(date '+%Y-%m-%d %H:%M:%S') - 开始从ODS往DWD导增量数据" >> $FULL_ADD_LOG
# 执行Hive命令
nohup hive -hivevar etl_dt="$dt" -f /root/aaa/program_2_hivesql/ods_to_dwd_inc_add.txt >> $FULL_ADD_LOG 2>&1
# 记录这一步的结果
test2=$?

if [ "$test1" -ne 0 ] || [ "$test2" -ne 0 ]; then
    # 如果失败了，打印错误提示
    echo " ODS往DWD导数据出错啦！去看日志文件找问题：$FULL_ADD_LOG"
    # 出错就退出脚本，不再继续执行
    exit
fi
# 如果没失败，打印成功提示
echo " ODS往DWD导数据完成啦！"

# 把开始时间写到日志里
echo "$(date '+%Y-%m-%d %H:%M:%S') - 开始从DWD往DWS导数据" >> $INC_ADD_LOG
# 执行Hive命令
nohup hive -hivevar etl_dt="$dt" -f /root/aaa/program_2_hivesql/dwd_to_dws_full_add.txt >> $INC_ADD_LOG 2>&1

if [ $? -ne 0 ]; then
    echo " DWD往DWS导数据出错啦！去看日志文件找问题：$INC_ADD_LOG"
    exit
fi
echo " DWD往DWS导数据完成啦！"

# 把开始时间写到日志里
echo "$(date '+%Y-%m-%d %H:%M:%S') - 开始从DWS往ADS导数据" >> $INC_ADD_LOG
# 执行Hive命令
nohup hive -hivevar etl_dt="$dt" -f /root/aaa/program_2_hivesql/dws_to_ads_full_add.txt >> $INC_ADD_LOG 2>&1

if [ $? -ne 0 ]; then
    echo " DWS往ADS导数据出错啦！去看日志文件找问题：$INC_ADD_LOG"
    exit
fi
echo " DWS往ADS导数据完成啦！"

echo " 所有数据都处理完成啦！！ "